//连接mysql数据库的文件
const mysql = require("mysql");

module.exports = {
    //数据库配置
    config: {
        host: "localhost",
        port: "3306",
        user: "root",
        password: "123456",
        database: "exapp"
    },
    // 连接数据库，使用mysql的连接池
    // 连接池的对象
    sqlConnect: function (sql, sqlArr, callBack) {
        let pool = mysql.createPool(this.config);
        pool.getConnection((err, conn) => {
            console.log("数据库连接");
            if (err) {
                console.log("连接失败");
                return;
            }
            // 事件驱动回调,执行数据库操作
            conn.query(sql, sqlArr, callBack);
            // 释放连接
            conn.release();
        });
    },
    // 操纵user信息的promise回调
    asyncSqlconnect: function (asyncSql, sqlArr) {
        return new Promise((resolve, reject) => {
            let pool = mysql.createPool(this.config);
            pool.getConnection((err, conn) => {
                console.log("数据库连接", asyncSql);
                if (err) {
                    reject(err);
                } else {
                    conn.query(asyncSql, sqlArr, (err, data) => {
                        if (err) {
                            reject(err);
                        } else {
                            // 将异步操作的结果作为参数传递出去
                            resolve(data);
                        }
                    });
                    // 释放连接
                    conn.release();
                }
            });
        }).catch((err) => {
            console.log("catch", err);
        });
    }
};
